//Type.h - this is solely included in ARBB.h, so don't bother.

#if !defined(AFX_TYPE_H__A8F25C42_0D99_11D4_BC5D_C08E03C10000__INCLUDED_)
#define AFX_TYPE_H__A8F25C42_0D99_11D4_BC5D_C08E03C10000__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Defs.h"

/* Datorita asimetriei arborelui B, referinta la subpagina 0 ar trebui luata
	separat, pentru ca sunt cu unul mai putine noduri decat subpagini. Dar daca
	exploatam faptul ca o pagina trebuie sa contina si numarul de noduri, si
	stiind ca pointerii si intregii sunt ambii pe 32 de biti, apara evident 
	avantajul folosirii urmatoarei uniuni: structura paginilor va fi mai simpla!
*/
typedef	union {
		class NodARBB* n;
		unsigned m;
} TCheie;

/* Aceasta structura nu este necesara; e a fost creata pentru facilitatea de
	plimbare prin arbore. Ea strica intr-un fel abstractizarea ce s-a realizat
	prin ierarhia claselor Pagina, PaginaCrs si PaginaPtr, dar nu de tot.
*/

typedef	union tagTImplPag {
	unsigned pCrs; // cursor sau
	void* pPtr; // pointer la pagina
	
	union tagTImplPag ( unsigned );
	union tagTImplPag ( void* );
	
	// Constructorul implicit tre' sa-l creez eu explicit, din cauza celorlalti
	union tagTImplPag ();

} TImplPag;

#endif // !defined(AFX_TYPE_H__A8F25C42_0D99_11D4_BC5D_C08E03C10000__INCLUDED_)
